

local _readOnlyMt = nil
function table.AsReadOnly(tb)
    if nil == _readOnlyMt then
        _readOnlyMt = {
            __newindex = function(tb, k, v)
                error("table readonly")
            end
        }
    end
    setmetatable(tb, _readOnlyMt)
end

